/* 控制流分析 */

// 这种基于可达性(reachability) 的代码分析就叫做控制流分析
// 在 if while 等条件控制语句中的类型保护
function padLeft(padding: number | string, input: string) {
  if (typeof padding === "number") {
    return new Array(padding + 1).join(" ") + input;
  }
  return padding + input;
}

function example() {
  let x: string | number | boolean;
  x = Math.random() < 0.5;
  console.log(x);

  if (Math.random() < 0.5) {
    x = "hello";
    console.log(x);
  } else {
    x = 100;
    console.log(x);
  }

  return x;
}